查看原文
其他

编程与写作

Jokey 程序员小乐 2020-10-08

专注于编程、互联网动态。最终将总结的技术、心得、经验(数据结构与算法、源码分析等)分享给大家,这里不只限于技术!还有职场心得、生活感悟、以及面经点击上方 "程序员小乐" ,选择“置顶公众号”,第一时间送达!

每日英文
I can accept failure but I can't accept not trying.
我可以接受失败,但绝对不能接受未曾奋斗过的自己。

乐乐有话说
无论是强者还是弱者,只要活在这尘世里,谁也无法逃离爱恨情仇的纠结;微笑着、忧伤着、快乐着,也疼痛着,这就是多味人生。  
 

来自:章鱼喵

链接:jianshu.com/p/b199377f459e

图片来自网络 

昨日精彩


0 前言

王小波广为人知的身份是作家,而他在写小说之前是一个相当优秀的程序员。他应该是程序员中最会写作,作家中最懂编程的人。

编程与写作,表面上看好像风马牛不相及,实则很相似。

1 编程vs写作

编程给人一种很冷冰冰,一切都井然有序的感觉,程序员更是成为低情商,木讷的代名词。

写作则让人觉得是内心十分敏感的人在向世界诉说他的情感,或狂热,或娓娓道来。作家给人一种才华横溢,内心极度丰富敏感,对世界充满着关怀的形象。

但本质上,编程与写作同属于创作活动,只是采用的工具及表达方式不同。

coding

创作活动的特点之一就是能让人体会到价值感,从而深度沉浸其中,达到心流的状态。心流状态给人带来的愉悦与幸福感远比刷抖音,看综艺节目更强,更持久。前者是由内而发的,会让人增强自信,增加存在感。后者源于外界刺激,欢愉过后可能是更大的空虚。

从细节层面,编程与写作可如此类比:

  • 引用第三方库,如同引用名人名言,素材案例

  • 算法与设计模式,就如同文章的经典架构,如:总分总,结论先行、自上而下表达

  • 同样的事物,不同人的表达方式完全不同

同样是去登庐出,普通人只能感慨:“啊,真TM壮观啊”。苏轼却写出了“不识庐山真面目,只缘身在此山中。” 同理,相同的功能,有些人写的代码,你看了就很想跟他切磋武艺,另一些人写的代码,读起来十分丝滑顺畅,令人如痴如醉,直想喊一句:

仰望大佬

2 简洁即美, 好文章/代码都是简洁优雅的

有些姑娘,说不出哪里美,单纯从五官上看,没有哪一个长得惊艳,就是看着很舒服。笑容爽朗,皮肤洁净,就像冬日里的阳光,让人不由得想去靠近。

好的文章/代码也是这样的,清晰简洁,干干净净。阅读起来很轻松愉悦。

犹如裹脚布一般又长又臭的代码/文字则令人望而生畏。

所不同的是,面对垃圾的文字,你大可以选择不看。可如果你接手的项目代码质量极其糟糕,每次你看到这些代码就如同巴甫洛夫的狗一样产生条件反射,莫名地恶心。很想把当时写这些代码的拉出来一顿暴打。可没办法,项目有deadline, 只能在垃圾代码的基础上再继续添加垃圾。

从这方面来看,写代码比写文章要容易。你想通过写文章糊口,至少要让文章受欢迎,有一定数量的读者群才能变现,远远不止是语法通顺,没有错别字就可以达标。而烂代码只要能在计算机上跑起来就可以了,计算机只会判断你的语法是否正确,不会因为你写得烂就罢工。所以写得一手烂代码的程序员依然能借着互联网的热潮拿到不错的薪水。

写好代码/文章的要点之一:初稿完成后,一定要再次通读,删减不必要的内容,无论你觉得这些内容多么优美,能精简的一律精简。

写少比写多更难。要克制自己肆意挥洒的欲望。

3 优秀的代码/文章能创造无限大的价值

现今的信息社会都是搭建在代码的基石上。代码在极大的程度上让这个世界变得更加美好。而代码的力量也仅仅是刚开始展现,人工智能的时代,代码将在方方面面重塑我们的生活。

而优秀的文学作品,影响的是人的思想、灵魂。可以改变一个人,一代人,甚至一个国家的命运。有史以来,世界各国所有重大变革的背后,都有相应的文学作品给予人们力量与方向。

同理,代码/文字能发挥多大的作用,也能产生相应的破坏力。

二战时期的纳粹德国,就是信仰了希特勒主导的纳粹精神而将整个欧洲,乃至整个世界都拖入了战火之中。

AI时代的到来,代码可能产生怎样的破坏力,犹未可知。

如果您觉得不错,请别忘了转发、分享、点赞让更多的人去学习, 您的举手之劳,就是对小乐最好的支持,非常感谢!


如何您想进技术群交流,关注公众号在后台回复 “加群”,或者 “学习” 即可

著作权归作者所有,欢迎大家投稿


推荐阅读

阿里、腾讯、百度、华为、京东最新面试题汇集

不得不知的排序七:归并排序
焦虑的时代,如何高效学习?
深入理解 ThreadLocal (这些细节不应忽略)


看完本文有收获?请转发分享给更多人
关注「程序员小乐」,提升技能

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存